1. Technical Field
The present invention relates in general to a system and method for self-configuring and self-optimizing filters. More particularly, the present invention relates to a system and method for reconfiguring and reordering filters based upon the amount of event types that an autonomic computer system receives.
2. Description of the Related Art
Within the past two decades, the development of raw computing power coupled with the proliferation of computer devices has grown at exponential rates. This phenomenal growth, along with the advent of the Internet, has led to a new age of accessibility to other people, other systems, and to information.
The simultaneous explosion of information and integration of technology into everyday life has brought on new demands for how people manage and maintain computer systems. The demand for information technology professionals is already outpacing supply when it comes to finding support for someone to manage complex, and even simple computer systems. As access to information becomes omnipresent through personal computers, hand-held devices, and wireless devices, the stability of current infrastructure, systems, and data is at an increasingly greater risk to suffer outages.
This increasing complexity, in conjunction with a shortage of skilled information technology professionals, points towards an inevitable need to automate many of the functions associated with computing today. Autonomic computing is one proposal to solve this technological challenge. Autonomic computing is a concept to build a computer system that regulates itself much in the same way that a person's autonomic nervous system regulates and protects the person's body.
An important aspect of a computer system, and of autonomic computing, is filtering data based upon a certain set of criteria. A computer system typically includes multiple filter stages whereby each stage filters a particular event type. A filter spends processing time for each piece of data that the filter receives. For example, if a filter receives 10,000 pieces of data, the filter processes each of the 10,000 pieces of data. Therefore, in order to minimize the total amount of filter processing time, the filters should be configured such that the highest number of received event types are filtered during the first filter stage so subsequent stages are not required to process the event types. Using the example described above, if the 8,000 of the 10,000 pieces of data are of event type “A”, then the first filter should filter event type A's such that the subsequent filters are left to process 2,000 pieces of data.
A challenge found, however, is that the data that a computer system receives changes dynamically. During one part of a day, the computer system may receive an over abundance of event type B's while during another part of the day the computer system may receive an over abundance of event type C's.
What is needed, therefore, is a system and method that monitors data event types and dynamically adjusts filter properties based upon the amount of a particular event type.